home *** CD-ROM | disk | FTP | other *** search
/ 100 Plus Great Games 2 / 100PLUSV2.BIN / games / Darts(301).dxr / Internal_2_throw darts.ls < prev    next >
Encoding:
Text File  |  2002-01-25  |  5.2 KB  |  182 lines

  1. property spriteNum, pDart, pLoc, pDistanceFromBoard, pBoardHeightFromGround, pPower, pDeterMinePower, pGravity, pair, pDiffer, pScale, pHeightOfDart, pOgHeight, pOgWidth, pFollow, hateV, hateH, myOloc, myOh, myOv, myOr
  2. global gDartCount, gEnableGrab, gEnablethrow, gIB, gBscreen, gDartPoint, gTargets, gRound, gCurrentScore, gRoundScore, gCSBox, gRSBox, gDartButtons, pootimer, gCRBox, gDartScore, gDartList
  3.  
  4. on beginSprite me
  5.   gDartList.add(spriteNum)
  6.   sprite(spriteNum).ink = 8
  7.   sprite(spriteNum).member.alphaThreshold = 0
  8.   myOloc = sprite(spriteNum).loc
  9.   myOh = sprite(spriteNum).height
  10.   myOv = sprite(spriteNum).width
  11.   myOr = sprite(spriteNum).rotation
  12. end
  13.  
  14. on cleanUp me
  15.   sprite(spriteNum).loc = myOloc
  16.   sprite(spriteNum).height = myOh
  17.   sprite(spriteNum).width = myOv
  18.   sprite(spriteNum).rotation = myOr
  19. end
  20.  
  21. on init me
  22.   pDart = sprite(spriteNum)
  23.   pDistanceFromBoard = 96
  24.   pBoardHeightFromGround = 68
  25.   pGravity = 0.59999999999999998
  26.   pHeightOfDart = 28
  27.   pOgHeight = pDart.height
  28.   pOgWidth = pDart.width
  29.   pFollow = timeout("follow").new(1, #followMouse, me)
  30.   pair = VOID
  31. end
  32.  
  33. on followMouse me
  34.   if (the mouseH >= 0) and (the mouseH <= (the stage).rect.width) and ((the mouseV >= 250) and (the mouseV <= (the stage).rect.height)) then
  35.     pDart.loc = the mouseLoc
  36.   else
  37.     pDart.locH = the mouseH
  38.   end if
  39. end
  40.  
  41. on mouseDown me
  42.   if voidp(pair) and (pDistanceFromBoard > 0) then
  43.     gEnablethrow = 1
  44.     pFollow.forget()
  45.     pLoc = []
  46.     pLoc[1] = pDart.locH
  47.     pLoc[2] = pDart.locV
  48.     pDistanceFromBoard = 96
  49.     pHeightOfDart = 28
  50.     pDeterMinePower = timeout("power" & string(spriteNum)).new(5, #buildPower, me)
  51.   end if
  52. end
  53.  
  54. on mouseUp me
  55.   if gEnablethrow and (pDistanceFromBoard > 0) then
  56.     puppetSound(4, member("throw dart"))
  57.     gEnablethrow = 0
  58.     hateH = the mouseH
  59.     hateV = the mouseV
  60.     pDartsCount = pDartsCount + 1
  61.     pDeterMinePower.forget()
  62.     buildPower()
  63.     pair = timeout("pAir" & string(spriteNum)).new(5, #thrown, me)
  64.   end if
  65. end
  66.  
  67. on mouseUpOutSide me
  68.   if gEnablethrow and (pDistanceFromBoard > 0) then
  69.     puppetSound(4, member("throw dart"))
  70.     gEnablethrow = 0
  71.     hateH = the mouseH
  72.     hateV = the mouseV
  73.     pDartsCount = pDartsCount + 1
  74.     pDeterMinePower.forget()
  75.     buildPower()
  76.     put pPower
  77.     pair = timeout("pAir" & string(spriteNum)).new(10, #thrown, me)
  78.   end if
  79. end
  80.  
  81. on buildPower me
  82.   pPower = -((float(hateV) - pLoc[2]) * 0.17999999999999999) * 0.72999999999999998
  83.   pDiffer = -((float(hateH) - pLoc[1]) * 0.17999999999999999) * 0.72999999999999998
  84.   if pPower < 10 then
  85.     pPower = 10
  86.   end if
  87.   if pPower > 22 then
  88.     pPower = 22
  89.   end if
  90. end
  91.  
  92. on thrown me
  93.   pDart.height = pDart.height - 3.54999999999999982
  94.   pDart.width = pDart.width - 3.54999999999999982
  95.   pDart.rotation = pDart.rotation + (pPower * 1.30000000000000004)
  96.   pPower = pPower - pGravity
  97.   pDistanceFromBoard = float(pDistanceFromBoard) - 2.5
  98.   pHeightOfDart = pHeightOfDart + pPower
  99.   pLoc[2] = pLoc[2] - pPower
  100.   pLoc[1] = pLoc[1] - pDiffer
  101.   pDart.locV = pLoc[2]
  102.   pDart.locH = pLoc[1]
  103.   pLoc[2] = pDart.locV
  104.   pLoc[1] = pDart.locH
  105.   if pDistanceFromBoard <= 0 then
  106.     if pDart.locV < 440 then
  107.       og = [290.0, 220.0]
  108.       pd = [pDart.locH.float, pDart.locV.float]
  109.       vec = [pd[1] - og[1], pd[2] - og[2]]
  110.       veclen = sqrt((vec[1] * vec[1]) + (vec[2] * vec[2]))
  111.       if veclen > 190 then
  112.         puppetSound(4, member("dart hit"))
  113.       else
  114.         puppetSound(4, member("dart hit 2"))
  115.       end if
  116.     else
  117.       puppetSound(4, member("hit floor"))
  118.     end if
  119.     pair.forget()
  120.     gDartPoint.loc = pDart.loc
  121.     tAss = 0
  122.     repeat with i = 1 to gTargets.count
  123.       updateStage()
  124.       if gDartPoint.intersects(gTargets[i]) then
  125.         gCurrentScore = gCurrentScore - sprite(gTargets[i]).returnPoints()
  126.         if gCurrentScore < 0 then
  127.           xtc = gCurrentScore + sprite(gTargets[i]).returnPoints()
  128.           xtc2 = sprite(gTargets[i]).returnPoints() - xtc
  129.           gCurrentScore = string(xtc2)
  130.         end if
  131.         gCSBox.text = string(gCurrentScore)
  132.         gRoundScore[gRound] = string(gCurrentScore)
  133.         gRSBox[gRound].text = string(gRoundScore[gRound])
  134.         gDartScore[gDartCount] = string(sprite(gTargets[i]).returnPoints())
  135.         if gCurrentScore = 0 then
  136.           pootimer = timeout("iii").new(1000, #gameEnd, me)
  137.         end if
  138.         tAss = 1
  139.         exit repeat
  140.       end if
  141.     end repeat
  142.     member("dart" && string(gDartCount)).text = string(gDartScore[gDartCount])
  143.     gEnableGrab = 1
  144.     if gDartCount = 3 then
  145.       if gCurrentScore > 0 then
  146.         gBscreen = timeout("bscreen").new(800, #bscreen, me)
  147.       end if
  148.     end if
  149.   end if
  150. end
  151.  
  152. on bscreen me
  153.   gBscreen.forget()
  154.   gDartCount = 0
  155.   gRound = gRound + 1
  156.   if (gRound = 15) or (gCurrentScore = 0) then
  157.     gameEnd()
  158.   else
  159.     gDartScore = [0, 0, 0]
  160.     gCRBox.text = string(gRound)
  161.     repeat with i = 1 to 3
  162.       member("dart" && string(i)).text = "0"
  163.     end repeat
  164.     repeat with i = 1 to gDartList.count
  165.       sprite(gDartList[i]).cleanUp()
  166.     end repeat
  167.     repeat with i = 1 to gDartButtons.count
  168.       sprite(gDartButtons[i]).visible = 1
  169.     end repeat
  170.     repeat with i = 1 to gIB.count
  171.       sprite(gIB[i]).cleanUp()
  172.     end repeat
  173.     if gRound <= 14 then
  174.       gRSBox[gRound].text = string(gCurrentScore)
  175.     end if
  176.   end if
  177. end
  178.  
  179. on gameEnd me
  180.   go("game over")
  181. end
  182.